/**
 * @file index.js
 * @description 服务器入口文件
 * @created 2024-07-01
 */

import express from 'express'
import cors from 'cors'
import bodyParser from 'body-parser'
import path from 'path'
import { fileURLToPath } from 'url'

// 获取当前文件目录
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

// 导入路由
import collegesRouter from './routes/colleges.js'
import classRouter from './routes/class.js'
import teacherRouter from './routes/teacher.js'
import userRouter from './routes/admin/user.js'

// 创建Express应用
const app = express()
const PORT = process.env.PORT || 8000

// 使用中间件
app.use(cors())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

// 注册路由 - 移除'/api'前缀，直接匹配前端期望的路径
app.use('/', collegesRouter)
app.use('/', classRouter)
app.use('/', teacherRouter)
app.use('/admin', userRouter) // 直接注册到/admin路径下，这样前端路径可以是/admin/user/list

// 静态文件服务
app.use(express.static(path.join(__dirname, '../dist')))

// 所有未捕获的路由返回index.html
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, '../dist/index.html'))
})

// 启动服务器
app.listen(PORT, () => {
  console.log(`服务器运行在 http://localhost:${PORT}`)
})

export default app 